home *** CD-ROM | disk | FTP | other *** search
/ DS-CD ROM 2 1993 August / DS CD-ROM 2.Ausgabe (August 1993).iso / programm / ds0045 / spritsrc.exe / SPR_KONV.PAS < prev    next >
Pascal/Delphi Source File  |  1991-08-30  |  3KB  |  89 lines

  1. program spr_konv;  {Sprite-Konverter für Turbo Pascal V1.2 vom 29.01.1991}
  2. uses drv_link,graph;
  3.  
  4. type    sprite_feld_record = record
  5.                              x_gr   : byte;
  6.                              y_gr   : byte;
  7.                              memuse : word;
  8.                              datenp : pointer;
  9.                              savep  : pointer;
  10.                              end;
  11.  
  12. var  graphdriver    : integer;
  13.      graphmode      : integer;
  14.      sprite_error   : integer;
  15.      sprite_daten   : array [0..1027] of byte;
  16.      sprite_feld    : sprite_feld_record;
  17.  
  18. procedure load_sprite (fname : string);
  19. var myfile : file;
  20.     t,u    : integer;
  21. begin
  22. sprite_error:=-1;
  23. {$I-}
  24. assign(myfile,fname);
  25. reset(myfile,1028);
  26. blockread(myfile,sprite_daten[0],1);
  27. close(myfile);
  28. {$I+}
  29. if ioresult=0 then
  30. if (sprite_daten[0]=84) and (sprite_daten[1]=83) then
  31. with sprite_feld do begin
  32.    x_gr:=sprite_daten[2];
  33.    y_gr:=sprite_daten[3];
  34.    memuse:=imagesize(1,1,x_gr,y_gr);
  35.    getmem(datenp,memuse);
  36.    getmem(savep,memuse);
  37.    getimage(0,0,x_gr-1,y_gr-1,savep^);
  38.    for t:=0 to x_gr-1 do for u:=0 to y_gr-1 do
  39.    putpixel(t,u,sprite_daten[4+t*32+u]);
  40.    getimage(0,0,x_gr-1,y_gr-1,datenp^);
  41.    putimage(0,0,savep^,0);
  42.    sprite_error:=0;
  43.    end;
  44. end;
  45.  
  46. procedure save_sprite (fname : string);
  47. var myfile : file;
  48.     t,u    : integer;
  49. begin
  50. {$I-}
  51. assign(myfile,fname);
  52. rewrite(myfile,2);
  53. blockwrite(myfile,sprite_daten[0],2);
  54. blockwrite(myfile,sprite_feld.datenp^,sprite_feld.memuse shr 1);
  55. close(myfile);
  56. {$I+}
  57. if ioresult<>0 then sprite_error:=-1;
  58. end;
  59.  
  60. begin
  61. if paramcount<>2 then begin
  62.    writeln ('Sie müssen als ersten Parameter des Programmes den Namen der');
  63.    writeln ('Sprite-Quelldatei und danach noch den Namen der neuen berechneten');
  64.    writeln ('Sprite-Zieldatei angeben.');
  65.    halt;
  66.    end;
  67. graphdriver:=0 ; graphmode:=0;
  68. initgraph(graphdriver,graphmode,'');
  69. if (graphresult<>0) then begin
  70.    writeln ('Es kann kein Grafikmodus aktiviert werden - Konvertierung ist unmöglich!');
  71.    halt;
  72.    end;
  73. load_sprite(paramstr(1));
  74. if sprite_error<>0 then begin
  75.    closegraph;
  76.    writeln ('Die Sprite-Quelldatei existiert nicht, ist eventuell defekt');
  77.    writeln ('oder bei der angegebenen Datei handelt es sich nicht um eine');
  78.    writeln ('Datei vom Sprite-Editor (SPRITEED.EXE).');
  79.    halt;
  80.    end;
  81. save_sprite(paramstr(2));
  82. if sprite_error<>0 then begin
  83.    closegraph;
  84.    writeln ('Die Sprite-Zieldatei konnte nicht gespeichert werden.');
  85.    halt;
  86.    end;
  87. closegraph;
  88. writeln ('Die Sprite-Quelldatei wurde erfolgreich konvertiert.');
  89. end.